Prof. Dr.-Ing. habil. Peter Jesorsky
Georg-Simon-Ohm Fachhochschule Nürnberg

Programmierübung "gerdate"

Die Deklaration einer (für die Bearbeitung der Aufgabe stark vereinfachten) Datums-Klasse Date ist in der Datei date.hpp fertig vorgegeben. Aus der Deklaration können Sie erkennen, dass Objekte der Klasse Date nach ihrer Erzeugung nicht mehr verändert werden können, da keine "set"-Zugriffsfunktionen vorhanden sind. Aus diesem Grund wird auch auf einen Standard-Konstruktor verzichtet.

Damit die (nicht zur Klasse Date gehörende) Ausgabefunktion operator<<() auf die protected-Datenelemente day, month und year zugreifen kann, ist sie als friend-Funktion der Klasse Date vereinbart.

Implementieren Sie die fehlenden Funktionen in der Datei date.cpp. Bei der Datumsausgabe soll die amerikanische Kurzform verwendet werden, also z.B. 11/27/1999 für den 27. November 1999.

Leiten Sie von der Klasse Date die Klasse GermanDate ab, um ein Datum im deutschen Format auszugeben. Es sollen zwei unterschiedliche Ausgabeformate unterstützt werden:

27.11.1999        und        27. November 1999

Zur Unterscheidung zwischen "Kurzform" und "Langform" soll ein privates static-Datenelement mit dem Namen longFormat eingeführt und mit false initialisiert werden. Zur Umschaltung soll eine public-Zugriffsfunktion

   void setLongFormat(bool format);

definiert werden, die ebenfalls static sein soll und intern

   longFormat = format;

ausführt. Die Funktion soll auch ohne Argument aufgerufen werden können und dann longFormat auf den Wert true setzen.

Wenn longFormat den Wert false hat, sollen die Ausgaben sämtlicher Datumsobjekte in der Kurzform erfolgen, andernfalls in der Langform. Die Abfrage soll innerhalb der von Ihnen zu entwickelnden Ausgabefunktion

   ostream &operator<<(ostream &os, const GermanDate &gd);

vorgenommen werden.

Beachten Sie, dass der Konstruktor der Klasse GermanDate den expliziten Konstruktor der Klasse Date im Rahmen einer Initialisierungsliste aufrufen muss, da die Klasse Date keinen Standard-Konstruktor zur Verfügung stellt. Speichern Sie die Klasse GermanDate in den Dateien gerdate.hpp bzw. gerdate.cpp ab. Das Testprogramm ist in der Datei gerdatet.cpp fertig vorgegeben.


Peter Jesorsky Peter.Jesorsky@fh-nuernberg.de
© 2004, letzte Änderung: Sat, 23 Oct 2004 17:25:24 GMT